From 8ca612c9664bf6f8ae7fef8b05881627fa32fdbd Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 3 Oct 2020 20:08:29 -0400 Subject: [PATCH] scale: Make draw-value default to FALSE This is rarely what you want, so lets turn it off by default. Update the one place in our demos where we want to draw a value, add support for this to gtk-builder-tool, add a test and mention this change in the migration guide. --- demos/widget-factory/widget-factory.ui | 2 + docs/reference/gtk/migrating-3to4.md | 9 ++++ gtk/gtkscale.c | 3 +- gtk/tools/gtk-builder-tool-simplify.c | 43 +++++++++++++++++++ testsuite/css/nodes/scale.ui | 2 + testsuite/gtk/focus-chain/widget-factory.ui | 2 + testsuite/gtk/focus-chain/widget-factory2.ui | 2 + testsuite/gtk/focus-chain/widget-factory3.ui | 2 + .../tools/simplify-data-3to4/scale.expected | 14 ++++++ testsuite/tools/simplify-data-3to4/scale.ui | 10 +++++ 10 files changed, 87 insertions(+), 2 deletions(-) create mode 100644 testsuite/tools/simplify-data-3to4/scale.expected create mode 100644 testsuite/tools/simplify-data-3to4/scale.ui diff --git a/demos/widget-factory/widget-factory.ui b/demos/widget-factory/widget-factory.ui index 139ef083e0..0b383655ee 100644 --- a/demos/widget-factory/widget-factory.ui +++ b/demos/widget-factory/widget-factory.ui @@ -1011,6 +1011,7 @@ Suspendisse feugiat quam quis dolor accumsan cursus. 0 75 -1 + 1 end @@ -1023,6 +1024,7 @@ Suspendisse feugiat quam quis dolor accumsan cursus. 0 75 -1 + 1 start diff --git a/docs/reference/gtk/migrating-3to4.md b/docs/reference/gtk/migrating-3to4.md index 429e7c7421..8e19740e12 100644 --- a/docs/reference/gtk/migrating-3to4.md +++ b/docs/reference/gtk/migrating-3to4.md @@ -891,6 +891,15 @@ gtk_search_entry_handle_event() has been dropped and replaced by gtk_search_entry_set_key_capture_widget() and gtk_event_controller_key_forward(). +### Adapt to GtkScale changes + +The default value of #GtkScale:draw-value has been changed to %FALSE. +If you want your scales to draw values, you will have to set this +property explicitly now. + +gtk4-builder-tool can help with this conversion, with the --3to4 option +of the simplify command. + ### Stop using gtk_window_activate_default() The handling of default widgets has been changed, and activating diff --git a/gtk/gtkscale.c b/gtk/gtkscale.c index c604642bff..d9928636cf 100644 --- a/gtk/gtkscale.c +++ b/gtk/gtkscale.c @@ -684,7 +684,7 @@ gtk_scale_class_init (GtkScaleClass *class) g_param_spec_boolean ("draw-value", P_("Draw Value"), P_("Whether the current value is displayed as a string next to the slider"), - TRUE, + FALSE, GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY); properties[PROP_HAS_ORIGIN] = @@ -839,7 +839,6 @@ gtk_scale_init (GtkScale *scale) _gtk_range_set_has_origin (range, TRUE); - gtk_scale_set_draw_value (scale, TRUE); gtk_range_set_round_digits (range, priv->digits); gtk_range_set_flippable (range, TRUE); diff --git a/gtk/tools/gtk-builder-tool-simplify.c b/gtk/tools/gtk-builder-tool-simplify.c index 0650f54941..f2f57d8eab 100644 --- a/gtk/tools/gtk-builder-tool-simplify.c +++ b/gtk/tools/gtk-builder-tool-simplify.c @@ -1770,6 +1770,45 @@ rewrite_radio_button (Element *element, } } +static gboolean +has_prop (Element *element, + MyParserData *data, + const char *prop_name) +{ + GList *l; + + for (l = element->children; l; l = l->next) + { + Element *child = l->data; + + if (g_str_equal (child->element_name, "property") && + has_attribute (child, "name", prop_name)) + return TRUE; + } + + return FALSE; +} + +static void +rewrite_scale (Element *element, + MyParserData *data) +{ + if (!has_prop (element, data, "draw-value") && + !has_prop (element, data, "draw_value")) + { + Element *child; + child = g_new0 (Element, 1); + child->parent = element; + child->element_name = g_strdup ("property"); + child->attribute_names = g_new0 (char *, 2); + child->attribute_names[0] = g_strdup ("name"); + child->attribute_values = g_new0 (char *, 2); + child->attribute_values[0] = g_strdup ("draw-value"); + child->data = g_strdup ("1"); + element->children = g_list_prepend (element->children, child); + } +} + /* returns TRUE to remove the element from the parent */ static gboolean simplify_element (Element *element, @@ -1919,6 +1958,10 @@ rewrite_element (Element *element, g_str_equal (get_class_name (element), "GtkRadioButton")) rewrite_radio_button (element, data); + if (element_is_object_or_template (element) && + g_str_equal (get_class_name (element), "GtkScale")) + rewrite_scale (element, data); + if (g_str_equal (element->element_name, "property")) maybe_rename_property (element, data); diff --git a/testsuite/css/nodes/scale.ui b/testsuite/css/nodes/scale.ui index b71f90a77a..1c7eb2c251 100644 --- a/testsuite/css/nodes/scale.ui +++ b/testsuite/css/nodes/scale.ui @@ -23,6 +23,7 @@ True horizontal adjustment1 + 1 @@ -31,6 +32,7 @@ horizontal adjustment1 bottom + 1 diff --git a/testsuite/gtk/focus-chain/widget-factory.ui b/testsuite/gtk/focus-chain/widget-factory.ui index c090dbf228..f3aa01b9fe 100644 --- a/testsuite/gtk/focus-chain/widget-factory.ui +++ b/testsuite/gtk/focus-chain/widget-factory.ui @@ -1014,6 +1014,7 @@ Suspendisse feugiat quam quis dolor accumsan cursus. 0 75 -1 + 1 end @@ -1026,6 +1027,7 @@ Suspendisse feugiat quam quis dolor accumsan cursus. 0 75 -1 + 1 start diff --git a/testsuite/gtk/focus-chain/widget-factory2.ui b/testsuite/gtk/focus-chain/widget-factory2.ui index cfc151da11..3f5c3bb0d3 100644 --- a/testsuite/gtk/focus-chain/widget-factory2.ui +++ b/testsuite/gtk/focus-chain/widget-factory2.ui @@ -1015,6 +1015,7 @@ Suspendisse feugiat quam quis dolor accumsan cursus. 0 75 -1 + 1 end @@ -1027,6 +1028,7 @@ Suspendisse feugiat quam quis dolor accumsan cursus. 0 75 -1 + 1 start diff --git a/testsuite/gtk/focus-chain/widget-factory3.ui b/testsuite/gtk/focus-chain/widget-factory3.ui index 9f454b90c2..de944471ef 100644 --- a/testsuite/gtk/focus-chain/widget-factory3.ui +++ b/testsuite/gtk/focus-chain/widget-factory3.ui @@ -1015,6 +1015,7 @@ Suspendisse feugiat quam quis dolor accumsan cursus. 0 75 -1 + 1 end @@ -1027,6 +1028,7 @@ Suspendisse feugiat quam quis dolor accumsan cursus. 0 75 -1 + 1 start diff --git a/testsuite/tools/simplify-data-3to4/scale.expected b/testsuite/tools/simplify-data-3to4/scale.expected new file mode 100644 index 0000000000..20e71ab9da --- /dev/null +++ b/testsuite/tools/simplify-data-3to4/scale.expected @@ -0,0 +1,14 @@ + + + + 1 + 0 + + + 0 + 1 + + + 0 + + diff --git a/testsuite/tools/simplify-data-3to4/scale.ui b/testsuite/tools/simplify-data-3to4/scale.ui new file mode 100644 index 0000000000..279b797df7 --- /dev/null +++ b/testsuite/tools/simplify-data-3to4/scale.ui @@ -0,0 +1,10 @@ + + + + + 1 + + + 0 + + -- 2.30.2